<?php

namespace app\admin\controller;

use app\admin\model\Mess;
use app\admin\model\User;
use think\Controller;
use think\Db;
use think\facade\View;
use think\Request;

class Message extends Controller
{
    //增加留言表的信息
    public function create()
    {
        //接所有值
        $arr = \request()->post();
        $arr['create_time'] = time();//发布时间
        $user = Mess::add($arr);//应用模型层
        if ($user) {//添加成功或者失败给出提示
            return json(['code' => 200, 'msg' => '添加成功', 'data' => $arr]);
        } else {
            return json(['code' => 200, 'msg' => '添加失败']);
        }
    }

    public function show(Request $request)
    {
        $user = Mess::select();
        return View::fetch('show', ['data' => $user]);
    }
 //聚合数据调用笑话大全的接口
 //1.跳转到页面，异步获取笑话的数据
    public function fun(Request $request){
        return $this->fetch('fun');
}
 //2.复制笑话大全的代码，这里是接数据
    public function save()
    {
 //请求的接口URL
        $apiUrl = 'http://v.juhe.cn/joke/content/list.php';
 //请求参数
        $params = [
            'key' => '8050cf3d5a73fd1d28161e1cba62eee3',//key
            'sort' => 'desc',
            'time' => time(),                //time时间戳   这里是固定的数字或者是time（）都可以
            'pagesize' => 10                 //每次返回条数
        ];
//参数数组转换成字符串
        $paramsString = http_build_query($params);

//发起接口网络请求
        $response = null;
        try {
            $response =$this->juheHttpRequest($apiUrl, $paramsString, 1);
        } catch (Exception $e) {
            var_dump($e);
            //此处根据自己的需求进行具体的异常处理
        }
        if (!$response) {
            echo '请求异常' . PHP_EOL;
        }
//接收接口返回内容
        $result = json_decode($response, true);  //json转成数组
 /*丰丰 这里是添加数据入库
  *  1.数据入库原生的直接pdo链接数据库，insert into
  *  2.框架入库数据是数组入库，所以需要把所有数据转成数组入库，多条数据，insert()就需要循环入库foreach
  *  3.insertAll()是批量添加，所以不需要循环，可以直接入库
  * 4.入库写到下边的位置是最好的，if判断后边
   *   $arr=[];
   *      foreach ($result['result']['data'] as $value){
   *           $arr['hashId']=$value['hashId'];
   *          $arr['unixtime']=$value['unixtime'];
   *          $arr[]=$value;//所有数据入库
   *      }
   *      print_r($arr);exit();
  * Db::name('fun')->insert($arr);//Db所有数据入库
   */

        if (!$result) {
            echo '请求异常' . PHP_EOL;
        }
        $errorCode = $result['error_code'];
        if ($errorCode == 0) {
            $data = $result['result']['data'];//这里是入库的数据
            Db::name('fun')->insertAll($data);//批量直接入库，不需要循环

        } else {
            echo "请求异常：{$errorCode}_{$result['reason']}" . PHP_EOL;
        }
        return json($result);   //丰加，在js中显示得是数组，所以把数组转成成json好在js中循环
//打印接口返回结果
     var_dump($result);



    }


    /**
     * 发起网络请求函数
     * @param String $url 请求的URL
     * @param bool $params 请求的参数内容
     * @param int $isPost 是否POST请求
     * @return bool|string  返回内容
     * 丰儿 这里是就自己封装的，在聚合函数中复制过来 ，curl调用第三方接口
     */
   public function juheHttpRequest($url, $params = false, $isPost = 0)
    {
        $httpInfo = [];
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_USERAGENT,  'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
        curl_setopt($ch, CURLOPT_TIMEOUT, 12);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        if ($isPost) {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            curl_setopt($ch, CURLOPT_URL, $url);
        } else {
            if ($params) {
                curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
            } else {
                curl_setopt($ch, CURLOPT_URL, $url);
            }
        }
        $reponse = curl_exec($ch);
        if ($reponse === FALSE) {
            // echo "cURL Error: ".curl_error($ch);
            return false;
        }
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
        curl_close($ch);
        return $reponse;
    }
  public  function funList(){
       $keyword=\request()->param('keyword');
       $data=Db::name('fun')->where('content','like',"%$keyword%")->select();
       return View::fetch('funlist',['data'=>$data]);
  }
  public function deldata(){
       $id=\request()->param('id');

       $res=Mess::destroy($id);
       if ($res){
           return $this->success('提示删除成功','funlist');
       }

  }
}
